﻿using pdfer.PdfObjecs;
using pdfer.Syntax;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace pdfer.FileObjects
{
    internal static class PdfName 
    {
        public const String Key_Title = "/Title";
        public const String Key_Subject = "/Subject";
        public const String Key_Keywords = "/Keywords";
        public const String Key_Author = "/Author";
        public const String Key_CreationDate = "/CreationDate";
        public const String Key_ModDate = "/ModDate";
        public const String Key_Creator = "/Creator";
        public const String Key_Producer = "/Producer";

        public const String Key_Version = "/Version";
        public const String Key_Pages = "/Pages";
        public const String Key_PageLabels = "/PageLabels";
        public const String Key_Names = "/Names";
        public const String Key_Name = "/Name";
        public const String Key_Dests = "/Dests";
        public const String Key_PageLayout = "/PageLayout";
        public const String Key_ViewerPreferences = "/ViewerPreferences";
        public const String Key_PageMode = "/PageMode";
        public const String Key_Outlines = "/Outlines";
        public const String Key_Metadata = "/Metadata";

        public const String Key_First = "/First";
        public const String Key_Last = "/Last";
        public const String Key_Prev = "/Prev";
        public const String Key_Next = "/Next";
        public const String Key_Dest = "/Dest";

        public const String Key_Type = "/Type";
        public const String Key_Kids = "/Kids";
        public const String Key_Count = "/Count";
        public const String Key_Parent = "/Parent";
        public const String Key_Resources = "/Resources";
        public const String Key_Font = "/Font";
        public const String Key_XObject = "/XObject";
        public const String Key_Contents = "/Contents";
        public const String Key_Rotate = "/Rotate";
        public const String Key_MediaBox = "/MediaBox";
        public const String Key_CropBox = "/CropBox";

        /// <summary>
        /// 结果可能是名称或者名称数组
        /// </summary>
        public const String Key_Filter = "/Filter";

        public const String Key_DecodeParms = "/DecodeParms";
        public const String Key_Dp = "/Dp";

        public const String Key_Predictor = "/Predictor";
        public const String Key_Colors = "/Colors";
        public const String Key_BitsPerComponent = "/BitsPerComponent";
        public const String Key_Columns = "/Columns";
        public const String Key_Rows = "/Rows";
        public const String Key_EarlyChange = "/EarlyChange";
        public const String Key_Subtype = "/Subtype";
        public const String Key_Length = "/Length";

        public const String Key_W = "/W";
        public const String Key_N = "/N";
        public const String Key_A = "/A";
        public const String Key_D = "/D";
        public const String Key_Index = "/Index";
        public const String Key_Size = "/Size";
        public const String Key_Height = "/Height";
        public const String Key_Width = "/Width";
        public const String Key_SMask = "/SMask";

        public const String Key_K = "/K";
        public const String Key_EndOfBlock = "/EndOfBlock";
        public const String Key_EncodedByteAlign = "/EncodedByteAlign";
        public const String Key_BlackIs1 = "/BlackIs1";

        public const String Key_BaseFont = "/BaseFont";
        public const String Key_FirstChar = "/FirstChar";
        public const String Key_LastChar = "/LastChar";
        public const String Key_Widths = "/Widths";
        public const String Key_FontDescriptor = "/FontDescriptor";
        public const String Key_Encoding = "/Encoding";
        public const String Key_BaseEncoding = "/BaseEncoding";
        public const String Key_ToUnicode = "/ToUnicode";
        public const String Key_FontBBox = "/FontBBox";
        public const String Key_FontMatrix = "/FontMatrix";
        public const String Key_CharProcs = "/CharProcs";
        public const String Key_DescendantFonts = "/DescendantFonts";
        public const String Key_CIDSystemInfo = "/CIDSystemInfo";

        public const String Key_FontName = "/FontName";
        public const String Key_StemV = "/StemV";

        public const String Key_FontFamily = "/FontFamily";
        public const String Key_FontStretch = "/FontStretch";
        public const String Key_Ascent = "/Ascent";
        public const String Key_Flags = "/Flags";
        public const String Key_FontWeight = "/FontWeight";
        public const String Key_XHeight = "/XHeight";
        public const String Key_Descent = "/Descent";
        public const String Key_ItalicAngle = "/ItalicAngle";
        public const String Key_CapHeight = "/CapHeight";
        public const String Key_CIDSet = "/CIDSet";
        public const String Key_FontFile3 = "/FontFile3";
        public const String Key_CMapName = "/CMapName";

        public const String Key_Differences = "/Differences";
        public const String Key_Supplement = "/Supplement";
        public const String Key_Ordering = "/Ordering";
        public const String Key_Registry = "/Registry";

        public const String Key_DW = "/DW";
        public const String Key_DW2 = "/DW2";
        public const String Key_W2 = "/W2";
        public const String Key_WMode = "/WMode";
        public const String Key_UseCMap = "/UseCMap";

        public const String Key_AIS = "/AIS";
        public const String Key_BM = "/BM";
        public const String Key_TR = "/TR";
        public const String Key_CA = "/CA";
        public const String Key_ca = "/ca";
    }

    internal static class PdfTypeConst
    {
        public const String Type_XRef = "/XRef";
        public const String Type_Catalog = "/Catalog";
        public const String Type_Pages = "/Pages";
        public const String Type_Page = "/Page";
        public const String Type_XObject = "/XObject";
        public const String Type_Image = "/Image";
        public const String Type_ObjStm = "/ObjStm";
        public const String Type_Font = "/Font";
        public const String Type_Font_Type0 = "/Type0";
        public const String Type_Font_Type1 = "/Type1";
        public const String Type_Font_MMType1 = "/Font_MMType1";
        public const String Type_Font_TrueType = "/Font_TrueType";
        public const String Type_Font_Type3 = "/Type3";
        public const String Type_Font_CIDFont0 = "/Font_CIDFont0";
        public const String Type_Font_CIDFont2 = "/Font_CIDFont2";
        public const String Type_FontDescriptor = "/FontDescriptor";
        public const String Type_ExtGState = "/ExtGState";
        public const String Type_Encoding = "/Encoding";
        public const String Type_CMap = "/CMap";
    }
}
